jetcrab\ast\literals/
function.rs

1use crate::ast::common::Span;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct ArrowFunctionExpression {
6    pub params: Vec<crate::ast::node::Node>,
7    pub body: Box<crate::ast::node::Node>,
8    pub expression: bool,
9    pub r#async: bool,
10    pub span: Option<Span>,
11}
12
13#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct FunctionExpression {
15    pub id: Option<Box<crate::ast::node::Node>>,
16    pub params: Vec<crate::ast::node::Node>,
17    pub body: Box<crate::ast::node::Node>,
18    pub generator: bool,
19    pub r#async: bool,
20    pub span: Option<Span>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct ClassExpression {
25    pub id: Option<Box<crate::ast::node::Node>>,
26    pub super_class: Option<Box<crate::ast::node::Node>>,
27    pub body: Box<crate::ast::node::Node>,
28    pub span: Option<Span>,
29}
30
31#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
32pub struct TemplateLiteral {
33    pub quasis: Vec<TemplateElement>,
34    pub expressions: Vec<crate::ast::node::Node>,
35    pub span: Option<Span>,
36}
37
38#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
39pub struct TemplateElement {
40    pub value: String,
41    pub tail: bool,
42    pub span: Option<Span>,
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
46pub struct TaggedTemplateExpression {
47    pub tag: Box<crate::ast::node::Node>,
48    pub quasi: Box<crate::ast::node::Node>,
49    pub span: Option<Span>,
50}